package com.example.teatea.tools;

import java.io.*;

public class FileTools {
    /**
     * 使用输入输出流复制图片文件到指定目录，上传后的文件以当前时间命名
     * @param source 待复制的源图片文件
     * @return File返回复制后的图片文件对象
     * @throws Exception
     */
    //
    public static File copyFile(File source) throws Exception{
        if(!source.exists()){//判断源图片文件是否存在
            return null;
        }
        String srcFileName=source.getName();//获取源图片的文件名
        //获取源图片文件的扩展名
        String extname = srcFileName.substring(srcFileName.lastIndexOf(".")+1);
        //设置复制后图片文件名，采用系统当前时间毫秒数命名
        String destFileName=System.currentTimeMillis()+"."+extname;
        //设置复制位置，定位到当前项目根目录下的[photo]目录
        String destDirectory= "E:\\TeaTea\\src\\main\\resources\\com\\example\\teatea\\photo\\food\\";
        //产生复制后的图片文件对象
        File dest = new File(destDirectory+destFileName);
        InputStream is = null;//定义输入流
        OutputStream os = null;//定义输出流
        try {
            is = new FileInputStream(source);//设置输入流
            os = new FileOutputStream(dest);//设置输出流
            byte[] buffer = new byte[1024];//设置读取缓冲数组
            int length;
            while ((length = is.read(buffer)) > 0) {//读数据到缓冲数组
                os.write(buffer, 0, length);//写数据
            }
        } finally {
            is.close();
            os.close();
        }
        return dest;
    }
}
